package com.blog.cmrpersonalblog.dto.user.request;

import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;

import java.util.List;

/**
 * 用户端文章更新请求DTO
 */
@Data
public class UserArticleUpdateRequest {

    /**
     * 文章ID
     */
    @NotNull(message = "文章ID不能为空")
    private Long id;

    /**
     * 文章标题
     */
    @NotBlank(message = "文章标题不能为空")
    @Size(max = 200, message = "文章标题不能超过200个字符")
    private String title;

    /**
     * 文章摘要（可选，如果不提供将自动从内容中提取）
     */
    @Size(max = 500, message = "文章摘要不能超过500个字符")
    private String summary;

    /**
     * 文章内容
     */
    @NotBlank(message = "文章内容不能为空")
    private String content;

    /**
     * 编辑器类型（1-Markdown编辑器 2-富文本编辑器）
     */
    private Integer editorTypes;

    /**
     * 封面图片URL（可选）
     */
    @Size(max = 500, message = "封面图片URL不能超过500个字符")
    private String coverImage;

    /**
     * 分类ID
     */
    @NotNull(message = "请选择文章分类")
    private Long categoryId;

    /**
     * 标签ID列表（可选）
     */
    private List<Long> tagIds;

    /**
     * 是否原创（0-转载 1-原创）
     */
    private Integer isOriginal = 1;

    /**
     * 文章状态（0-草稿 1-已发布）
     */
    private Integer status = 1;

    /**
     * 是否立即发布（true-立即发布，false-保存为草稿）
     */
    private Boolean publishNow = true;
}
